export default {

    /**
     * 预处理数据
     */
    preProcessData(data, type) {
        if (Array.isArray(data)) {
            data.forEach(item => {
                // 财务精度
                if (type === 0) {
                    // 待核对 3, 尚未抄报税 5
                    item.disabled = [3, 5].indexOf(item.status) === -1;
                    item.checked = false;
                }
                // 税务精度
                else {
                    // 待输入销项 11
                    item.disabled = [11].indexOf(item.status) === -1;
                    item.checked = false;
                }
            });
        }
    },

    /**
     * 选项改变
     */
    checkedChange(component) {
        let count = 0;
        let checked = 0;

        component.tableData.forEach(item => {
            if (!item.disabled) {
                count++;
                checked += item.checked ? 1 : 0;
            }
        });

        component.isIndeterminate = false;
        if (count === checked) {
            component.checkedAll = true;
        }
        else if (checked === 0) {
            component.checkedAll = false;
        }
        else {
            component.isIndeterminate = true;
        }
    },

    /**
     * 全选/全不选 处理
     */
    checkedAllChange(component, val) {
        component.tableData.forEach(item => {
            if (!item.disabled) {
                item.checked = val;
            }
        });
        component.isIndeterminate = false;
    },

    /**
     * 获取选中的项
     *
     * @param {Object} component 组件对象
     * @return {Array} 选中项
     */
    getCheckedItems(component) {
        return component.tableData.filter(item => {
            return item.checked;
        });
    }
};